package com.zmn.plat.model.entity.company;

import com.zmn.common.utils.pager.Pages;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * @author duanzuocai
 * @version v1.0
 * @类说明：列表页查询条件
 * @modifier tanbiao 2019/09/06 新增查询条件
 * @since 2018/10/16 11:33
 */
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BaseCompanyQuery extends Pages {
    private static final long serialVersionUID = 1L;
    private Integer companyId;

    /**
     * 公司名称或者全称
     */
    private String name;

    /**
     * 支持中文及拼音模糊搜索
     */
    private String keyword;

    /**
     * 类型：
     */
    private Integer type;

    /**
     * 子类型
     */
    private Integer childType;

    private List<CompanyTypeQuery> companyTypeQueryList;

    /**
     * 平台标志：1.言而有信 2.啄木鸟
     */
    private Integer plat;

    /**
     * 联系人
     */
    private String contact;

    /**
     * 开票路由：1 新科讯、2 人工开票
     */
    private Integer invoicingRouting;

    /**
     * 公司税点
     */
    private Integer taxPoint;

    /**
     * 状态：1停用，2启用
     */
    private Integer status;

    private Integer cityId;

    private Integer provinceId;

    private Integer countyId;

    /**
     * 创建时间范围 yyyy/mm/dd-yyyy/mm/dd
     */
    private String timeRange;

    /**
     * 联系人或电话
     */
    private String contactOrPhone;

    /**
     * 公司名称或者公司ID
     */
    private String nameOrCompanyId;

    /**
     * 创建时间的范围，对timeRange进行切分，便于查询
     */
    private String startCreateTime;
    private String endCreateTime;

    private List<Integer> companyIds;

//    /**
//     * 一级组织架构ID（总公司：则有所属，和1级架构ID）
//     */
//    private Integer orgOneId;

    /**
     * 二级组织架构ID
     */
    private Integer orgTwoId;

    /**
     * 三级组织架构ID（子公司：则有所属，和123级架构ID）
     */
    private Integer orgThrId;

//    /**
//     * 一级组织架构名称
//     */
//    private String orgOneName;

    /**
     * 二级组织架构名称
     */
    private String orgTwoName;

    /**
     * 三级组织架构名称
     */
    private String orgThrName;

    /**
     * 所属组织架构ID（服务商等：无所属，有123级架构ID）
     */
    private Integer orgId;

    /**
     * 所属组织架构名称（服务商等：无所属，有123级架构ID）
     */
    private String orgName;

    /**
     * 所属子公司ID（只有4级服务商等，才会有所属子公司）
     */
    private Integer subCompanyId;

    private List<Integer> subCompanyIds;

    /**
     * 所属子公司名称
     */
    private String subCompanyName;

    /**
     * 公司等级：1平台公司、3子公司、4服务商等等
     */
    private Integer level;

    /**
     * 三级组织架构id
     */
    private List<Integer> orgThrIds;

}
